//里面保存一些登录状态等信息 提供者，@3188066816
import { createStore } from 'vuex'

export default createStore({
    state: {
        //后面写window是获取缓存，确保在之后刷新的时候不会跳出去
        isLogin: window.sessionStorage.getItem('isLogin'),          // 登录状态：0未登录，1已登录
        userNumber: window.sessionStorage.getItem('userNumber'),    // 用户账号
        userType: window.sessionStorage.getItem('userType'),      // 用户类型
    },
    mutations: {
        // 设置登录状态
        setIsLogin(state, status) {
            state.isLogin = status;
            window.sessionStorage.setItem('isLogin', status);
        },
        // 保存用户信息（账号和类型）
        setUserInfo(state, userInfo) {
            state.userNumber = userInfo.userNumber;
            state.userType = userInfo.userType;
            window.sessionStorage.setItem('userNumber', userInfo.userNumber);
            window.sessionStorage.setItem('userType', userInfo.userType);
        }
    },
    actions: {
        // 登录动作
        login({ commit }, userData) {
            commit('setIsLogin', 1)     // 设置为已登录状态
            commit('setUserInfo', userData)    // 保存用户信息
        },
        // 登出动作
        logout({ commit }) {
            commit('setIsLogin', 0)  // 设置为未登录状态
            commit('setUserInfo', { 
                userNumber: null, 
                userType: null 
            }) 
        }
    },
    getters: {
        isLogin:state=> state.isLogin,  // 获取当前登录状态
        user:state=> state.userNumber,
        type:state=> state.userType
    }
})
